package qc.module.platform.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.ColumnTypeEnum;
import qc.common.core.enums.DataTypeEnum;
import qc.common.core.enums.WhereConditionTypeEnum;

import java.io.Serializable;

/**
 * QcDbTableColumn
 *
 * @author QuCheng Tech
 * @since 2024/1/29
 */
@Data
@TableName("qc_dbtable_column")
public class QcDbTableColumn implements Serializable, Cloneable {
    /**
     * 表代码;对应数据库中实际的表名
     */
    //@TableId
    private String tbcode;
    /**
     * 列代码;对应数据库表中的实际列名
     */
    //@TableId
    private String code;
    /**
     * 列名称;用于UI中展示的名称
     */
    private String name;
    /**
     * 是否为主键
     */
    private Boolean isprimary;
    /**
     * 数据类型;字符串、日期时间、整数、小数、布尔、枚举、BLOB
     */
    private DataTypeEnum datatype;
    /**
     * 渠成列类型;定义列中存储的对象类型标识，id、名称、写入时间、更新时间、参数值等
     */
    private ColumnTypeEnum coltype;
    /**
     * 长度;最大长度
     */
    private Integer length;
    /**
     * 不为空;不为空
     */
    private Boolean notnull;
    /**
     * 默认值;默认值
     */
    private String defaultval;
    /**
     * 取值范围;可以使用0-9表示范围， 也可以使用逗号分隔表示序列，枚举或数据字典名称
     */
    private String valrange;
    /**
     * 单位;显示在表格和表单中时的单位
     */
    private String unit;
    /**
     * 格式化字符串;前端显示的格式化字符串
     */
    private String formatstr;
    /**
     * 排序;显示时的列顺序
     */
    private Integer qrodr;
    /**
     * 描述信息
     */
    private String description;
    /**
     * 查询结果中是否显示;是否在前端查询结果中显示
     */
    private Boolean qrshow;
    /**
     * 查询结果中显示宽度;在表格中的列宽
     */
    private Integer qrwidth;
    /**
     * 查询结果中固定显示位置;固定显示位置，默认为空，可以取值left或right
     */
    private String qrfixed;
    /**
     * 查询结果中图表显示配置;可以使用图表显示的配置，如配置默认使用的图表类型，支持显示的图表类型
     */
    private String qrcharts;
    /**
     * 查询结果中对象排序顺序;查询时的排序顺序号，按顺序号从小到大排序
     */
    private Integer qrorderidx;
    /**
     * 查询结果中使用升序排序;查询时是否使用升序排序，为true表示升序，为false表示降序，null表示该列不作为排序列
     */
    private Boolean qrascorder;
    /**
     * 查询条件标记;是否作为查询条件，在查询条件表单中显示
     */
    private Boolean qcflag;
    /**
     * 查询条件非空输入;是否为必须查询条件
     */
    private Boolean qcnotnull;
    /**
     * 查询条件比较类型;查询条件的比较类型，等于、like、范围等
     */
    private WhereConditionTypeEnum qccmptype;
    /**
     * 编辑表单中是否显示;是否在编辑表单中显示
     */
    private Boolean efshow;
    /**
     * 编辑表单中的宽度;编辑表单中的列宽度
     */
    private Integer efcolspan;
    /**
     * 修改时重置值;修改数据时是否重置该列的值，使用默认值重置
     */
    private Boolean efreset;
}
